node-red如何连接modbus slave设备

说明

我想在node-red中用流程图中配置modbus master主设备通过mocbus tcp rtu去联接modbus slave设备,如何配置呢?

步骤一:安装Modbus相关节点

  1. 打开Node-RED编辑器(浏览器访问 http://<你的设备IP>:1880)。
  2. 点击右上角菜单,选择“Manage palette(管理调色板)”。
  3. 在“Install”标签页中搜索 node-red-contrib-modbus,点击“Install”安装。

步骤二:添加Modbus TCP/RTU节点

  1. 安装完成后,左侧会出现“modbus”类别。
  2. 拖拽 modbus-readmodbus-write 节点到流程图中。
  3. 双击节点,点击“Server”右侧的铅笔图标,新增Modbus服务器配置。

步骤三:配置Modbus主设备(Master)

  • 连接类型
  • 如果是TCP,选择“TCP”,填写Slave设备的IP和端口(通常为502)。
  • 如果是RTU(串口),选择“Serial”,填写串口设备(如/dev/ttyUSB0)、波特率、数据位、校验等参数。
  • Unit-Id:填写目标Slave的地址(通常为1)。
  • 其他参数按实际需求设置。

步骤四:配置读写操作

  • modbus-read 节点:设置功能码(如03读保持寄存器)、起始地址、长度、轮询间隔等。
  • modbus-write 节点:设置功能码、目标地址、写入数据等。

Modbus-Read节点参数填写说明

  • 名称:自定义,便于识别。
  • 主题(Topic):可留空或自定义(如用于消息分流时填写),一般默认即可。
  • Unit-Id:填写目标 Modbus slave 设备的地址(通常为1,具体看你的设备设置)。
  • FC(功能码):选择你要执行的Modbus功能码,常用如下:
  • 1:读线圈(Coil Status)
  • 2:读离散输入(Input Status)
  • 3:读保持寄存器(Holding Registers,最常用)
  • 4:读输入寄存器(Input Registers)
  • Address:要读取的寄存器或线圈的起始地址(通常从0或1开始,具体看设备手册)。
  • Quantity:读取的数量(如要读2个寄存器就填2)。
  • Poll Rate:轮询周期,单位为毫秒(如1000表示每秒读取一次)。

举例(读取slave地址为1,保持寄存器,起始地址0,数量2,每秒轮询): - Unit-Id:1 - FC:3 - Address:0 - Quantity:2 - Poll Rate:1000

步骤五:部署与调试

  1. 连接节点,点击右上角“部署”。
  2. 查看debug面板,确认数据是否正常收发。

参考示例

[modbus-read] → [debug]

常见问题

  • 确认物理连接和串口权限。
  • TCP模式下防火墙需放行502端口。
  • RTU模式下需正确配置串口参数。

如需更详细的配置说明,可参考node-red-contrib-modbus官方文档